home *** CD-ROM | disk | FTP | other *** search
/ Programming Sound Cards / Programming Sound Cards.iso / sound_87 / asciiz.pas < prev    next >
Pascal/Delphi Source File  |  1995-01-01  |  2KB  |  61 lines

  1. {****************************************************************************}
  2. {                                                                            }
  3. { MODULE:         AsciiZ                                                     }
  4. {                                                                            }
  5. { DESCRIPTION:    Provides a conversion function   AsciiZ -> string.         }
  6. {                                                                            }
  7. { AUTHOR:         Juan Carlos Arévalo                                        }
  8. {                                                                            }
  9. { MODIFICATIONS:  Nobody (yet ;-).                                           }
  10. {                                                                            }
  11. { HISTORY:        01-Oct-1992 First documentation.                           }
  12. {                 17-Oct-1992 Documentation finished.                        }
  13. {                                                                            }
  14. { (C) 1992 VangeliSTeam                                                      }
  15. {____________________________________________________________________________}
  16.  
  17. UNIT AsciiZ;
  18.  
  19. INTERFACE
  20.  
  21.  
  22.  
  23.  
  24. FUNCTION StrAsciiZ(VAR s; l: WORD) : STRING; { Converts the AsciiZ string 's' to a }
  25.                                              { TP string with a maximum length.    }
  26.  
  27.  
  28.  
  29.  
  30. IMPLEMENTATION
  31.  
  32.  
  33.  
  34.  
  35. FUNCTION StrAsciiZ(VAR s; l: WORD) : STRING;
  36.   VAR
  37.     z : ARRAY[0..65520] OF CHAR ABSOLUTE s;
  38.     i : WORD;
  39.   BEGIN
  40.     i := 0;
  41.  
  42.     IF z[0] <> #0 THEN
  43.       REPEAT
  44.         StrAsciiZ[i+1] := z[i];
  45.         INC(i);
  46.       UNTIL (i > l) OR (z[i] = #0);
  47.  
  48.     IF i > l THEN DEC(i);
  49.  
  50.     StrAsciiZ[0] := CHR(l);
  51.  
  52.     IF i < l THEN
  53.       FOR i := i+1 TO l DO
  54.         StrAsciiZ[i] := ' ';
  55.   END;
  56.  
  57.  
  58.  
  59.  
  60. END.
  61.